메인 콘텐츠로 이동하기
  1. 블로그 글/

파이썬 - pandas loc vs iloc

·1 분

본 글은 파이썬 내 pandas 라이브러리를 활용하여 DataFrame을 다룰 때 필요한 .loc() 과 .iloc() 각각의 특징과 차이점을 설명하고자 작성되었습니다.

우선, 설명을 위해서 seaborn을 활용하여 예시의 데이터(iris)를 가져오도록 하겠습니다.

>>> import seaborn as sns
>>> iris = sns.load_dataset('iris')
>>> iris.head()

Alt text
iris 데이터 첫 5행열

1. loc #

loc은 레이블(Label)을 기반으로 데이터를 선택하는 메서드입니다. 행과 열의 이름(Label)을 사용하여 데이터에 접근합니다. 즉, 행과 열의 이름을 명시적으로 지정하여 데이터를 선택합니다.

# 열 이름이 'species'인 데이터 중 'virginica'를 가진 값 선택
>>> iris.loc[iris['species'] == 'virginica']

Alt text
species 중에 virgnica 값을 가지고 있는 첫 5행열

2. iloc #

iloc은 정수(Integer) 기반의 인덱스를 사용하여 데이터를 선택하는 메서드입니다. 행과 열의 정수 위치(인덱스)를 이용하여 데이터에 접근합니다. 즉, 데이터의 위치를 정수로 명시하여 선택합니다.

# 첫 번째 행과 두 번째 열에 있는 데이터 선택
>>> iris.iloc[0, 1]
3.5

Alt text
첫 번째 행과 두 번째 열인 sepal_width에 있는 데이터

3. loc과 iloc의 차이점 #

  • 인덱스의 타입:

    loc은 레이블(Label)을 사용하므로, 행과 열의 이름이 문자열이나 다른 데이터 타입일 수 있습니다.

    iloc은 정수(Integer)를 사용하므로, 행과 열의 인덱스는 정수여야 합니다.

  • 사용법:

    loc은 명시적으로 레이블을 사용하여 데이터를 선택하는 데에 중점을 둡니다.

    iloc은 정수 위치(인덱스)를 사용하여 데이터를 선택하는 데에 중점을 둡니다.

  • 예시:

    loc 예시: df.loc[‘A’, ‘column_name’]

    iloc 예시: df.iloc[0, 1]

언제 어떤 메서드를 사용할지는 데이터프레임의 구조 및 사용자의 목적에 따라 다릅니다.

loc은 레이블이 명확하게 정의되어 있을 때 유용하며, iloc은 정수 기반의 인덱스가 사용되는 경우에 유용합니다.